#ifndef CACHERECV_H
#define CACHERECV_H

#include <QObject>
#include "CacheBase.h"

class CacheRecv : public CacheBase
{
    Q_OBJECT
public:
    /**
     * @brief Construct a new Cache Recv object
     * 
     * @param parent 
     */
    CacheRecv(QObject *parent=nullptr);
public slots:
    /**
     * @brief 接收埋点信息
     * 
     * @param info 埋点信息
     */
    void recvUploadInfo(const QString &info);
    /**
     * @brief 接收公共信息
     * 
     * @param info 公共信息
     */
    void recvCommonInfo(const QString &info);
    /**
     * @brief 接收tid信息
     * 
     * @param info tid信息
     */
    void recvTidInfo(const QString &info);
    /**
     * @brief 检测数据库中是否存储在tid
     * 
     * @param info tid信息
     * @param existState 检测结果
     */
    void checkTidInfo(const QString &info,bool &existState);
private:
    /**
     * @brief 在数据库中存储埋点信息
     * 
     * @param info 埋点信息
     * @return true 存储成功
     * @return false 存储失败
     */
    bool saveUploadInfo(const QList<QString> &info);
    /**
     * @brief 在数据库中存储公共信息
     * 
     * @param info 公共信息
     * @return true 存储成功
     * @return false 存储失败
     */
    bool saveCommonInfo(const QList<QString> &info);
    /**
     * @brief 在数据库中存储tid信息
     * 
     * @param info 
     * @return true 存储成功
     * @return false 存储失败
     */
    bool saveTidInfo(const QList<QString> &info);
    /**
     * @brief 在数据库中检测tid是否存在
     * 
     * @param info tid信息
     * @return true 存在
     * @return false 不存在
     */
    bool checkTidExist(const QString &info);
};

#endif // CACHERECV_H
